#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Core;
using Cephei.Core.Generic;
using Microsoft.FSharp.Core;
using Cephei.QL.Models.Equity;
using Cephei.QL;
namespace Cephei.QL.Pricingengines.Vanilla
{
    /// <summary> 
	/// ! References:  Heston, Steven L., 1993. A Closed-Form Solution for Options with Stochastic Volatility with Applications to Bond and Currency Options.  The review of Financial Studies, Volume 6, Issue 2, 327-343.  J. Gatheral, The Volatility Surface: A Practitioner's Guide, Wiley Finance  A. Elices, Models with time-dependent parameters using transform methods: application to Heston???s model, http://arxiv.org/pdf/0708.2020  \ingroup vanillaengines
	/// </summary>
    [Guid ("5FBB9401-2B9F-4e73-AD61-0B36A4894B06"),ComVisible(true)]
	public interface IAnalyticPTDHestonEngine : Cephei.QL.IPricingEngine
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
        /// <summary> 
		/// 
		/// </summary>
		 IAnalyticPTDHestonEngine Calculate {get;}
    }   

    /// <summary> 
	/// ! References:  Heston, Steven L., 1993. A Closed-Form Solution for Options with Stochastic Volatility with Applications to Bond and Currency Options.  The review of Financial Studies, Volume 6, Issue 2, 327-343.  J. Gatheral, The Volatility Surface: A Practitioner's Guide, Wiley Finance  A. Elices, Models with time-dependent parameters using transform methods: application to Heston???s model, http://arxiv.org/pdf/0708.2020  \ingroup vanillaengines Factory
	/// </summary>
   	[ComVisible(true)]
    public interface IAnalyticPTDHestonEngine_Factory 
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        /// <summary> 
		/// 
		/// </summary>
	    IAnalyticPTDHestonEngine Create (Cephei.QL.Models.Equity.IPiecewiseTimeDependentHestonModel model, Microsoft.FSharp.Core.FSharpOption<UInt64> integrationOrder);
        /// <summary> 
		/// 
		/// </summary>
	    IAnalyticPTDHestonEngine Create (Cephei.QL.Models.Equity.IPiecewiseTimeDependentHestonModel model, Double relTolerance, UInt64 maxEvaluations);
    }
}

